/*

* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     Smart-Shop开源商城系统/ Java商城-首选电商平台系统 请务必保留此注释头信息
* |     开源地址: https://gitee.com/ningbo-qishan/gruul-mall
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     可正常分享和学习源码,未经授权 不可商用！
* |     商业版中台购买/开源版商业授权 联系技术客服
* |     官网:  https://www.73app.cn/
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     Copyright (c) 2016-2999 宁波启山智软科技有限公司
* |     版权所有 ,侵权必究！
* ------------------------------------------------------------------------

*/
package com.medusa.gruul.order.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.medusa.gruul.common.core.util.PageUtils;
import com.medusa.gruul.order.api.entity.Order;
import com.medusa.gruul.order.model.*;

import java.util.List;


/**
 * <p>
 * 订单表 服务类
 * </p>
 *
 * @author alan
 * @since 2019 -09-02
 */
public interface IPointOrderService extends IService<Order> {


    /**
     * 提货点核销订单
     *
     * @param orderId the order id
     * @return void
     * @author alan
     * @date 2019 /11/29 23:01
     */
    void verifyOrder(Long orderId);

    /**
     * 用户概况列表
     *
     * @param pointId the point id
     * @param keyword the keyword
     * @return java.util.List<com.medusa.gruul.order.model.UserOverviewVo>  user overview page
     * @author alan
     * @date 2019 /12/15 14:14
     */
    List<UserOverviewVo> getUserOverviewPage(Long pointId, String keyword);

    /**
     * getUserOverviewVos
     *
     * @param orderList the order list
     * @return java.util.List<com.medusa.gruul.order.model.UserOverviewVo>  user overview vos
     * @author alan
     * @date 2020 /1/7 20:47
     */
    List<UserOverviewVo> getUserOverviewVos(List<Order> orderList);

    /**
     * 提货点用户订单
     *
     * @param dto the dto
     * @return com.medusa.gruul.common.core.util.PageUtils<com.medusa.gruul.order.model.SimpleOrderVo>  order page
     * @author alan
     * @date 2020 /1/7 20:48
     */
    PageUtils<SimpleOrderVo> getOrderPage(QueryUserOrderDto dto);

    /**
     * Gets history order page.
     *
     * @param dto the dto
     * @return the history order page
     */
    PageUtils<HistoryOrderVo> getHistoryOrderPage(QueryPointHistoryOrderDto dto);
}
